ניהול מערכות תובלה ושינוע זרימה ברשת
עץ פורס מינימאלי Minimal Spanning Tree הבעיה: מציאת חיבור בין כל קודקודי גרף במינימום עלות שימושים: פריסת תשתית אלגוריתם חמדן (Greedy) Kruskal(1956) Prim(1957)
השוואה בין האלגוריתמים Prim Input: A connected weighted graph with vertices V and edges E. Initialize: V new = {x}, where x is an arbitrary node (starting point) from V, E new = {} Repeat until V new = V: Choose edge (u,v) with minimal weight such that u is in V new and v is not (if there are multiple edges with the same weight, choose arbitrarily but consistently) Add v to V new, add (u, v) to E new Output: V new and E new describe a minimal spanning tree The time required by Prim's algorithm is O( V 2 ). It will be reduced to O( E log V ) if heap is used to keep {v in V\S i : L(v) < infinity}. Kruskal create a forest F (a set of trees), where each vertex in the graph is a separate tree create a set E containing all the edges in the graph while E is nonempty remove an edge with minimum weight from E if that edge connects two different trees, then add it to the forest, combining two trees into a single tree otherwise discard that edge. The time required by Kruskal's algorithm is O( E log V ).
דוגמה
דוגמה נוספת
זרימה מקסימאלית Max flow Min cut Problem הבעיה: מציאת הקיבולת המקסימאלית להעברה בין שתי נקודות תוך שימוש ברשת אשר לכל קשת קיבולת מקסימאלית משלה שימושים: פינוי אוכלוסיה, העברת כוחות, תכנון רשת ייצוג LP פשוט, פתרון פשוט (פתרון בשלמים ללא צורך ב- ILP ) זרימה מקסימאלית חתך מינימאלי מספר מקורות ומספר יעדים הרחבות ושינויים: זרימה סיבובית (Circulation) הוספת חסם תחתון העברה (Transshipment) הוספת ביקוש הוצאה מינימאלית Cost) (Minimum הוספת עלויות בעיית התחבורה Problem) (Transportation עלויות, ביקוש והיצע, ללא חסמים מספר מוצרים (Multi-commodity) הצבת תנועה Assignment) (Traffic התחשבות במסלולי נסיעה ופונקצית עכבה
פתרון הבעיה GAMS, MATLAB, ) באמצעות תוכנות אופטימיזציה (LINDO של ה- EXCEL SOLVER כלים ייעודיים
עבודה עם ה- SOLVER
אלגוריתם Fulkerson) (Ford & פתרון באמצעות ה- SOLVER מיד...
שלבי האלגוריתם O O O 7 0 2 5 0 7 B B B בנית רשת עזר לא מכוונת הכוללת זרימה שיורית וזרימה בפועל מציאת מסלול ממקור ליעד הכולל קשתות עם יתרת זרימה חיובית קיזוז יתרת הזרימה המינימאלית מהזרימה השיורית והוספה לזרימה בפועל כאשר לא ניתן למצוא מסלול האלגוריתם מסתיים
דוגמה
פתרון בעיית זרימה סיבובית (חסם תחתון) מאחר וקיימים חסמים תחתונים אין פתרון טריוויאלי לכן למציאת פתרון אפשרי נבצע: הסבת הבעיה לבעיית זרימה סיבובית חלוקת הקודקודים לשלוש קבוצות: - S מייצרי זרימה - T סופגי זרימה I מאוזנים הוספת קודקודים S, T פתרון הבעיה עם חסם עליון מנורמל שימוש באלגוריתם Ford & Fulkerson הוספת הזרימה מהפתרון לחסם התחתון שיפור הפתרון במידת האפשר למציאת פתרון אופטימאלי:
( ) ( ) ( ) S)0 < a i = l j, i l i, j ( ) ( ) ( ) T)0 < b i = l i, j l j, i ( ) = ( ) I) l i, j l j, i j j j j a( k) j j k מבנה הרשת x S T ( ) a m m (, ) = (, ) (, ) c k x c k x l k x קבוצת S קבוצת T קבוצת I n p b( n) b ( p)
דוגמה 0,4 2 4 2,6 0,3 0,4 1,2 1,3 1 3 1,2 1,7 5 0,
בדיקת חסמים תחתונים 0 2 4 קדקד "מייצר" זרימה 2 0 0 1 1 1 3 1 1 5 קדקד "סופג" זרימה 0
בעיה מנורמלת 2 s 2 4 2 4 4 3 4 1 2 1 3 1 6 5 1 3 t
זרימה התחלתית: יש להוסיף לזרימה שהתקבלה בתהליך t -s את החסם התחתון 2 2 4 4 2 4 1 1 1 3 1 4 5 3
מינימום עלות - ניסוח LP
שימושים לבעיית מינימום עלות שימוש קודקודי היצע (מקור) קודקודי מעבר קודקודי ביקוש (יעד) תפעול רשת הפצה מקור המוצרים אתרי אחסון לקוחות טיפול באשפה מוצקה מקור האשפה מתקני טיהור מטמונות תפעול רשת הספקה ספקים מחסנים מפעלים תיאום תמהיל מוצרים מפעלים יצור מוצרים שווקים למוצרים ניהול תזרים מזומנים מקורות חלופות להשקעה שימושים
דוגמה לבעיית מינימום עלות